Unity Master Class • July 14, 2026
유니티(Unity) 엔진을 처음 켜면 수많은 창과 기능 때문에 막막할 수 있습니다. 하지만 당장 게임을 만들기 위해 꼭 알아야 하는 필수 창은 딱 5가지입니다. 연극에 비유해서 유니티의 핵심 특징들을 쉽게 알아보겠습니다.
Scene 뷰는 말 그대로 게임의 **'Scene(장면)'**을 시각적으로 보고 편집하는 도구입니다. 게임이 하나의 연극이라면, Scene은 무대와 같습니다.
이처럼 다양한 화면들을 각각의 씬으로 만들어 낼 수 있습니다.
게임을 하다 보면 '로딩 중'이라는 문구를 자주 보셨을 겁니다. 이것이 바로 새로운 Scene을 메모리에 불러오는 과정입니다. 한 씬에 너무 많은 요소를 집어넣으면 그만큼 메모리를 많이 차지하고 로딩 시간도 길어집니다. 따라서 기획에 맞게 씬을 적절히 분리하는 것이 성능 최적화의 첫걸음입니다.
씬 안에는 GameObject(게임 오브젝트) 들만 배치할 수 있습니다. 수많은 게임 오브젝트가 모여서 하나의 게임을 움직이게 합니다. 연극으로 치면 무대 위에 올라가는 소품, 배경, 배우 등 모든 요소가 바로 게임 오브젝트입니다. 설정에 따라 배경이 될 수도 있고, 주인공 캐릭터가 될 수도 있기 때문입니다.
현재 씬에 어떤 게임 오브젝트들이 배치되어 있는지 표 형태로 깔끔하게 리스트를 보여주는 곳이 바로 Hierarchy(하이어라키/계층 구조) 창입니다.
Hierarchy 창에서는 게임 오브젝트끼리 포개어 놓는 '부모-자식' 관계를 만들 수 있습니다.
이 기능은 복잡한 맵이나 캐릭터를 만들 때 엄청나게 유용합니다.
만약 1,000개의 게임 오브젝트를 조립해서 멋진 성(Castle)을 만들었다고 가정해 봅시다. 그런데 이 오브젝트들이 전부 따로 놀고 있다면, 성의 위치를 옮기고 싶을 때 Scene 뷰에서 1,000개의 오브젝트를 하나하나 다 클릭해서 옮겨야 합니다. 생각만 해도 끔찍하죠?
하지만 하나의 빈 부모 오브젝트를 만들고 그 안에 1,000개의 오브젝트를 자식으로 정렬해 둔다면? 부모 오브젝트 하나만 움직여도 성 전체가 하나의 거대한 건물처럼 부드럽게 이동합니다. 이 부모-자식 기능을 얼마나 효율적으로 활용하느냐에 따라 유니티 초보와 고수가 갈린다고 해도 과언이 아닙니다.
게임 오브젝트들은 기본적으로 빈 껍데기에 불과합니다. 이 껍데기에 구체적인 기능을 넣어주는 것이 바로 Component(컴포넌트) 입니다. 연극으로 따지면 배우에게 주는 대본이나 역할인 셈입니다.
내가 선택한 게임 오브젝트에 어떤 컴포넌트가 붙어 있는지 상세하게 보여주는 곳이 Inspector(인스펙터) 창입니다.
MonoBehaviour를 상속받은 C# 클래스(코드) 파일로 직접 만들 수 있습니다. (클래스와 상속에 대해서는 추후 자세히 다루겠습니다.)유니티의 모든 게임 오브젝트가 예외 없이 반드시 가지고 있는 컴포넌트가 있습니다. 바로 Transform 컴포넌트입니다. Transform은 오브젝트의 위치, 각도, 크기 값을 담당합니다. 인스펙터 창에서 이 값을 수정하면 오브젝트가 화면에서 직접 움직이거나 변형됩니다.
똑같은 게임 오브젝트라도 크기(Scale) 값을 바닥처럼 얇고 납작하게 만들면 '바닥'이 되고, 위로 길고 높게 만들면 '벽'이 됩니다. 컴포넌트가 게임 오브젝트에 어떻게 영향을 주어 역할을 부여하는지 이해가 되시나요?
모든 게임 오브젝트(엄밀히는 컴포넌트)는 코드가 실행되는 특정 타이밍이 정해져 있습니다. 예를 들어, 앞서 말한 Transform은 인스펙터에서 값을 수정하는 순간 즉시 코드가 실행되어 화면에 반영됩니다.
이러한 실행 타이밍을 제어해 주는 것이 바로 유니티 컴포넌트의 기반이 되는 MonoBehaviour입니다. 유니티 엔진은 씬에 있는 모든 컴포넌트를 취합한 뒤, 정해진 타이밍(라이프 사이클)에 맞춰 함수들을 실행합니다.
Start() 함수: 게임이 시작될 때(혹은 오브젝트가 활성화될 때) 딱 한 번 실행되는 함수입니다. 유니티는 씬에 존재하는 모든 게임 오브젝트의 컴포넌트에 들어있는 Start() 함수를 찾아 일제히 실행합니다.게임 오브젝트와 컴포넌트가 많아질수록 게임이 시작될 때 처리해야 할 연산이 많아지므로 메모리 사용량이 늘어나고 순간적인 렉이 걸릴 수 있습니다. 컴포넌트는 매우 강력한 도구이지만, 무분별하게 남용하면 게임 성능을 떨어뜨릴 수 있으므로 주의해서 사용해야 합니다.
게임에 들어가는 배경음악, 효과음, 이미지(스프라이트), 3D 모델링 파일 등의 에셋(Asset)들은 어디에 저장되어 있을까요? 정답은 유니티 프로젝트가 생성된 컴퓨터 내부 폴더입니다.
하지만 에셋을 확인하려면 매번 유니티 창을 내리고 윈도우 파일 탐색기를 켜서 폴더 경로를 찾아 들어가는 것은 너무나 번거로운 일입니다. 유니티는 Project 뷰를 통해 프로젝트 폴더 내부의 모든 자료를 유니티 안에서 마치 탐색기처럼 볼 수 있게 해줍니다. 이곳에서 자료들을 편리하게 관리하고 게임에 맞게 설정을 수정할 수도 있습니다.
프로젝트 뷰에 있는 파일들은 기본적으로 하드디스크(SSD)에 존재하므로 당장 메모리에 올라가지는 않습니다. 하지만 스크립트(컴포넌트)에서 해당 에셋을 참조(연결)하거나,
Resources라는 특수한 이름의 폴더 안에 에셋을 넣어두면 게임 실행 시 메모리에 자동으로 올라가게 됩니다. 만약 "화면에 배치한 게임 오브젝트도 별로 없는데 왜 이렇게 게임이 무겁고 렉이 걸리지?"라는 의문이 든다면, 대량의 에셋이 메모리에 부적절하게 로드되어 있는지 이 부분을 점검해 봐야 합니다.
유니티 화면 맨 위 중앙을 보면 음악 플레이어 버튼처럼 생긴 아이콘들이 있습니다.
플레이(▶️) 버튼을 눌러 테스트를 시작하면, 유니티 편집 창이 아닌 실제 플레이어가 보게 될 화면인 Game(게임) 뷰를 통해 게임이 실행됩니다. 여기서 내 게임이 기획대로 잘 작동하는지 실시간으로 테스트해 볼 수 있습니다.